草庐IT

Android AsyncTask 用于长时间运行的操作

全部标签

Ruby,如何创建一个 Rack::Request 用于测试目的?

我有一个库,它接受一个Rack::Request并在其上做一些事情。我想通过单元测试而不是功能测试来测试它。所以我必须自己创建一个Rack::Request实例,我该怎么做? 最佳答案 Rack本身包含一些针对Rack::Request的单元测试,您可以将它们用作起点(example)。Rack::Request.new(Rack::MockRequest.env_for("http://example.com:8080/",{"REMOTE_ADDR"=>"10.10.10.10"}))

ruby-on-rails - ruby 中集合操作与数组操作的效率

集合和数组在运算效率上有何不同?例子:查找迭代包括? 最佳答案 在Ruby中,Set是使用底层的Hash编写的,它通常应该与Hash等效。因此:include?:集合复杂度为O(1),数组复杂度为O(n)枚举:两者都是O(n)删除:集合复杂度为O(1),数组复杂度为O(n)...等等如果您所说的“查找”是指按索引查找,我会注意到默认的Set实现是无序的,因此它不像数组那样支持该操作。 关于ruby-on-rails-ruby中集合操作与数组操作的效率,我们在StackOverflow上找

ruby - 从命令行通过 capistrano 在远程主机上运行命令

有没有办法在不将命令添加到Capfile的情况下在capistrano中运行命令?例子:cap--eval"run'du-sh'"--roleweb 最佳答案 您可以使用它在服务器上运行命令。capROLES=webinvokeCOMMAND='du-sh'如果您甚至没有上限配方,您可以在命令行上指定服务器:cap-suser=myusernameHOSTS=server1.com,server2.cominvokeCOMMAND='du-sh'要查看更多命令行选项,请运行cap-H和cap-einvoke。

ruby - 在没有安装/运行 SMTP 服务器的情况下使用 Ruby 发送电子邮件?

在Mac上,我可以使用命令mail从命令行发送电子邮件,但我的MacBookPro上肯定没有安装SMTP服务器。那么,可以在没有SMTP服务器的情况下使用Ruby发送电子邮件吗?我不关心速度,我只想要一种无需额外软件即可发送电子邮件的方式。 最佳答案 您可以从您的Ruby代码中调用mail命令。使用system或反引号或诸如open3之类的更复杂的东西来与系统命令交互...这里是对不同方法的一个很好的概述:http://mentalized.net/journal/2010/03/08/5_ways_to_run_commands_

ruby - 从 vim 运行 ruby​​ 代码

在Vim中编辑ruby​​程序后,是否可以在编辑器中运行它,而不是使用命令行? 最佳答案 在Vim中,你可以运行当前缓冲区::!ruby%它可能有用也可能没用,具体取决于您的用例。同样,您可以使用:!command调用任何shell命令 关于ruby-从vim运行ruby​​代码,我们在StackOverflow上找到一个类似的问题: https://stackoverflow.com/questions/7042622/

ruby - 如何在 capistrano 中使用 --trace 运行 rake?

我希望capistrano使用--trace调用rake,这样我就可以弄清楚它失败的原因。我该怎么做呢?set:rake'rake--trace'不起作用。 最佳答案 我找到的最好的方法是:set:rake,"#{rake}--trace"这样您就不会覆盖rake变量。例如,如果您使用bundler,这之前设置为:“bundleexecrake”之后:“bundleexecrake--trace” 关于ruby-如何在capistrano中使用--trace运行rake?,我们在Stac

ruby - 配置 RSpec 以将 Capybara.javascript_driver 用于所有请求规范

是否可以全局配置RSpec以对所有请求规范使用Capybara的(默认或自定义)JavaScript驱动程序?我们有时会忘记手动将js:true添加到每个请求规范中,这有点烦人。 最佳答案 在spec_helper.rb中,设置以下内容:config.before(:each)doifexample.metadata[:type]==:requestCapybara.current_driver=:selenium#orequivalentjavascriptdriveryouareusingelseCapybara.use_def

ruby - 当通过 Rake 测试运行时,Minitest #setup 和 #teardown 不会被调用

我有一个MiniTest套件。我使用的是基本的Minitest::Unit::TestCase,而不是规范。我在我的TestCase子类中定义了setup和teardown方法。当我像这样运行测试文件时,它们可以完美运行:rubytest/whatever_test.rb。但是当我运行raketest时,setup和teardown没有被调用。我的Rakefile的相关部分是:require'rake/testtask'Rake::TestTask.newdo|t|t.test_files=FileList['test/*_test.rb']t.verbose=trueend为什么在使

ruby - 我能否编写仅在我的脚本运行时执行但在需要时不执行的 Ruby 代码?

我想写一个像这样的Ruby脚本:classFoo#instancemethodsheredefself.runfoo=Foo.new#dostuffhereendend#Thiscodeshouldonlybeexecutedwhenrunasascript,butnotwhenrequiredintoanotherfileunlessrequired_in?#我希望能够对其进行单元测试,这就是为什么我不希望类外的代码运行,除非我直接执行脚本,即rubyfoo_it_up.rb。我知道我可以简单地将Foo类放在另一个文件中并在我的脚本中require'foo'。事实上,这可能是一种更好

ruby - 为什么在使用 savon 进行 ruby​​ soap 通信时将 "wsdl"命名空间插入到操作名称中?

我正在尝试访问我无法控制的SOAP服务。其中一个操作称为ProcessMessage。我按照这个例子生成了一个SOAP请求,但我收到一条错误消息,指出该操作不存在。我将问题追溯到生成信封正文的方式。USER658e702d5feff1777a6c741847239eb5d6d86e482010-02-18T02:05:25Zpassword......ProcessMessage标签应该是:这就是示例Java应用程序生成它时的样子,并且可以正常工作。该标记是我的Ruby应用程序生成的内容与示例Java应用程序之间的唯一区别。有什么方法可以去掉那个标签前面的"wsdl:"命名空间并添加这